home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / ai / gaf200b / example / robotarm.gaf < prev    next >
Text File  |  1994-06-17  |  3KB  |  98 lines

  1. CONFIGURATION
  2.     PLOT_DURATION = 5.0;        ! seconds
  3.     SIM_SCHEDULE_RATE = 0.06;   ! second
  4.     SIM_INC_RATE = 0.005;       ! second
  5. END_CONFIGURATION;
  6.  
  7. SEGMENT Control
  8.  
  9. CYCLE_TIME    0.06
  10.  
  11. !     Name      MIN   MAX
  12. IN    Position (0.0, 70.0)
  13. IN    Movement (-50.0, 50.0)
  14. IN    Pos_error(-70.0, 70.0)
  15. OUT   Current  (-1.0, 1.0)
  16. IN    Pos_reg  (0, 1)
  17.  
  18. ENABLE = Pos_reg ;
  19.  
  20. Initialization
  21.     Current      = 0;
  22. RESET
  23.     Current      = 0;
  24. END;
  25.  
  26. !        Name                     Below    Low   High  Above  Truth
  27. Symbol   Very_low    OF Position (  0.0,   0.0,  25.0,  30.0,  1.0)
  28. Symbol   Medium_low  OF Position ( 25.0,  30.0,  30.0,  34.9,  1.0)
  29. Symbol   Medium      OF Position ( 30.0,  35.0,  35.0,  40.0,  1.0)
  30. Symbol   Medium_high OF Position ( 35.1,  40.0,  40.0,  45.0,  1.0)
  31. Symbol   Very_High   OF Position ( 40.0,  45.0,  70.0,  70.0,  1.0)
  32.  
  33. Symbol   Neg_large   OF Pos_error(-70.0, -70.0, -15.0, -05.0,  1.0)
  34. Symbol   Neg_small   OF Pos_error(-15.0, -05.0, -05.0,   0.0,  1.0)
  35. Symbol   Zero        OF Pos_error( -5.0,   0.0,   0.0,   5.0,  1.0)
  36. Symbol   Pos_small   OF Pos_error(  0.0,   5.0,   5.0,  15.0,  1.0)
  37. Symbol   Pos_large   OF Pos_error(  5.0,  15.0,  70.0,  70.0,  1.0)
  38.  
  39. Symbol   Down_large  OF Movement (-50.0, -50.0, -20.0, -10.0,  1.0) 
  40. Symbol   Down_small  OF Movement (-20.0, -10.0, -10.0,   0.0,  1.0) 
  41. Symbol   Zero        OF Movement (-10.0,   0.0,   0.0,  10.0,  1.0) 
  42. Symbol   Up_small    OF Movement (  0.0,  10.0,  10.0,  20.0,  1.0) 
  43. Symbol   Up_large    OF Movement ( 10.0,  20.0,  50.0,  50.0,  1.0)
  44.  
  45. !        Name                       Below    Low   High  Above  Truth   Center
  46. Symbol   Neg_large OF Current ( -1.0,  -1.0,  -0.4,  -0.2,   1.0,  -1.0)
  47. Symbol   Neg_small OF Current ( -0.4,  -0.2,  -0.2,   0.0,   1.0)
  48. Symbol   Zero_value OF Current ( -0.2,   0.0,   0.0,   0.2,   1.0)
  49. Symbol   Pos_small OF Current (  0.0,   0.2,   0.2,   0.4,   1.0)
  50. Symbol   Pos_large OF Current (  0.2,   0.4,   1.0,   1.0,   1.0,   1.0)
  51.  
  52. !!!!!!!! Rules for looper regulator (Current)
  53. !       Pos    Pos              Neg     Neg
  54. !      Large  Small    Zero    Small   Large
  55. !--------------------------------------------
  56. !  UL   +L      +S      -L      -S      -L
  57. !  US   +L    ZERO/+S   -S      -S      -L
  58. !  Z    +L      +S      ZERO    -S      -L
  59. !  DS   +L      +S      +S    ZERO/-S   -L
  60. !  DL   +L      +S      +L      -S      -L
  61. !
  62. !
  63.  
  64. IF Pos_error IS Neg_large
  65. THEN Current IS Neg_large
  66.  
  67. IF Pos_error IS Neg_small
  68. THEN Current IS Neg_small
  69.  
  70. IF Pos_error IS Neg_small AND Movement IS Down_small
  71. THEN Current IS Zero_value
  72.  
  73. IF Pos_error IS Zero AND Movement IS Up_large
  74. THEN Current IS Neg_small
  75.  
  76. IF Pos_error IS Zero AND Movement IS Up_small
  77. THEN Current IS Neg_small
  78.  
  79. IF Pos_error IS Zero AND Movement IS Zero
  80. THEN Current IS Zero_value
  81.  
  82. IF Pos_error IS Zero AND Movement IS Down_small
  83. THEN Current IS Pos_small
  84.  
  85. IF Pos_error IS Zero AND Movement IS Down_large
  86. THEN Current IS Pos_large
  87.  
  88. IF Pos_error IS Pos_small
  89. THEN Current IS Pos_large
  90.  
  91. IF Pos_error IS Pos_small AND Movement IS Up_large
  92. THEN Current IS Neg_large
  93.  
  94. IF Pos_error IS Pos_large
  95. THEN Current IS Pos_large
  96.  
  97. END Control;
  98.